#pragma once

#include "../SGD Wrappers/Entity.h"
#include "../stdafx.h"
#include "Emitter.h"
#include "Particle.h"
class  CEmitter;
class CParticleManager
{
public:
	enum Shape{ Square, Circle, Line };

	static	CParticleManager*	GetInstance(void);
	static	void				DeleteInstance(void);

	
	bool		Initialize();
	int			Update();
	bool		Terminate(void);

	void RenderAll();
	void UpdateAll(float _elapsedTime);
	

	
	void DeleteEmitter(CEmitter * prmEmitter);
	CEmitter * CreateEmitter(SGD::Point* prmPoint,const char * prmFilePath, unsigned int prmEmitStyle);
	

	
//Data members TODO: properly make private.
	std::vector<CEmitter*> v_LoadedEmit;
	std::vector<SGD::HTexture> v_LoadedTexture;
	char * m_cFilePath;
	



private:
	static CParticleManager *	s_Instance; //Singleton Instance

	CParticleManager(void) = default;
	virtual	~CParticleManager(void) = default;

	CParticleManager(const CParticleManager&) = delete;
	CParticleManager&	operator=	(const CParticleManager&) = delete;

	



};




